<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<ul id="sss">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<body>
<script>
    //{}一个大括号就是一个块级作用域
    //在块级作用域下  var和function声明的变量依然是全局的
    //在块级作用域下let和const声明的变量是私有的
    //{}如果想表示一个对象不可以放在行首
    {
        var a= 1 ;
        function getA() {

        }
        let b=2;
        const c=3;
        console.log(b)
        console.log(c)
    }
    console.log(a)
    console.log(getA)
//    console.log(b)  //undefined
//    console.log(c)  //undefined


    //for(){},if(){},对象{}
//    {name:'奥术大师',age:20}

    let obj= {name:'奥术大师',age:20}
    console.log(eval('( {name:\'奥术大师\',age:20}  )'));


    //if(){}  中的function只会提前声明不会提前定义,当条件成立的时候会先给函数赋值  代码再执行
    if(1){
        var A=1;
        function getAA() {

        }
    }
    console.log(A)
    console.log(getAA)

    let list =document.getElementById("sss").getElementsByTagName("li")

//    for(var i=0;i<list.length;i++){
//        list[i].index = i
//        list[i].onclick=function () {
//            alert(this.index)
//        }
//    }

    for(let i=0;i<list.length;i++){
        list[i].onclick=function () {
            alert(i)
        }
    }
    //在块级的外面拿不到值

</script>

</body>
</html>